1. Technical Field
This disclosure generally relates to content management systems, and more specifically relates to maintaining referential integrity of dynamically assembled components when deleting elements in the repository of a content management system.
2. Background Art
A content management system (CMS) allows many users to efficiently share electronic content such as text, audio files, video files, pictures, graphics, etc. Content management systems typically control access to content in a repository. A user may generate content, and when the content is checked into the repository, the content may be subsequently processed by the CMS according to predefined rules. A user may also check out content from the repository, or link to content in the repository while generating content. The rules in a CMS assure that content that comes into or out of the system or that is linked to meets desired criteria specified in the rules.
One way for known content management systems to create documents is by dynamic compound document assembly. Dynamic compound document assembly involves retrieving elements from the repository and assembling the elements into a parent document. For example, this might occur according to an assembly template or from manual ad hoc assembly. The assembly template dictates which elements are to be retrieved and where the elements are supposed to be linked into the parent document. The parent document contains explicit relationships as formal links to each of the elements in the parent document. When the parent document is checked into the repository, the formal links are all checked against applicable rules, thereby enforcing referential integrity.
Today, content management systems are moving to provide dynamic content delivery. Dynamic content delivery refers to the ability to assemble components “on the fly.” Dynamic content delivery may involve receiving user input, and then dynamically assembling a document to match the document requested by the user. In the alternative, dynamic content delivery may involve an automated process for dynamically assembling a document without user input, for example, based on some criteria. Document maps provide a backbone to describe how the dynamically assembled document is generated, but the explicit relationships (e.g., formal links) between parent documents and the elements do not exist. The lack of explicit relationships provides for greater flexibility in creating documents, and allows the CMS to receive input from a user or from other parameters and assemble documents dynamically. For example, a customer document may be automatically generated and rendered to a user's web browser based on data the user enters into a form.
One of the problems with dynamic content delivery is that referential integrity can be compromised. Without the explicit relationships between parent and child elements, and because a dynamically generated document may not be checked into the repository, elements required to create certain documents could be deleted, which would make it impossible to create that document. In content management systems where there is an explicit relationship (e.g., formal link) between parent and child documents, the owner of the parent document could be alerted when a child document is deleted, and/or the deletion of the child document could be prevented. This is not the case in dynamic content delivery as the parent document (i.e. document map) never knows which child elements it will be including when it prepares the document. Without a way to enforce referential integrity when deleting elements in a repository, the computer industry cannot fully utilize dynamic content delivery in a content management system.